﻿using System;
using System.ComponentModel;
using System.Diagnostics;

namespace OFX.Aggregator.Infrastructure
{
	[Serializable]
	[DebuggerDisplay("TransactionId = {TransactionId}, Description = {Description}, Amount = {Amount}")]
	public class StatementLine
	{
		[DefaultValue("")]
		public string TransactionId { get; set; }

		public TransactionType TransactionType { get; set; }
		public DateTime DatePosted { get; set; }
		public DateTime DateValue { get; set; }

		[DefaultValue("")]
		public string Description { get; set; }

		[DefaultValue("")]
		public string CheckNumber { get; set; }

		[DefaultValue(0)]
		public int SIC { get; set; }

		public double Amount { get; set; }

		[DefaultValue("")]
		public string OriginalCurrencyAmount { get; set; }

		[DefaultValue(0.0)]
		public double Comissions { get; set; }

		[DefaultValue("")]
		public string Memo { get; set; }
	}

	public enum TransactionType
	{
		Debit,
		Credit,
		POS,
		Payment,
		ServiceCharge,
		Fee,
		DirectDeposit,
		Transfer
	}
}